

#ifndef BSPLINE_CERRADA_H_
#define BSPLINE_CERRADA_H_

#include "bspline.h"
#include <vector>

class Coord;

class BsplineCerrada : public Bspline {
   public:

      /*
       * Construye una curva bsplien con una cantidad "puntos" de puntos de control
       * La Bspline es forzada a cerrarse.
       *
       * Precondicion:
       *    El parametro "puntos" es la cantidad de elementos del array de Coord
       *    La cantidad de elementos debe cumplir
       *
       *    puntos > grado()
       *    (puntos - grado() - 1) % 2 == 0
       *
       * */       
      BsplineCerrada(const std::vector<Coord> &pcontrol);

      //TODO Constructor temporal
      BsplineCerrada(size_t puntos, Coord *puntosControl);

      virtual ~BsplineCerrada();

      virtual Coord centro() const;
};

#endif
